"""
worker queue
          \ -- C1
P -- Q -- \
          \ -- C2
轮询分发
公平分发

一个消息只能被一个消费者接收
"""
import pika

# 获取MQ连接
# from pingtai.mqdemo import get_connection
from pingtai.mqdemo.mqutils import get_connection

connection = get_connection()

# 在连接上创建一个频道CHANNEL
channel = connection.channel()

# 声明队列QUEUE
channel.queue_declare(queue='task_queue', durable=True)  # 创建一个新队列task_queue，设置队列持久化，注意不要跟已存在的队列重名，否则有报错

# 发送消息
channel.basic_publish(exchange='',  # 交换机
                      routing_key='task_queue',  # 路由键，这里写明将消息发送给队列worker
                      body='Hello World!',  # 生产者要发送的消息
                      properties=pika.BasicProperties(delivery_mode=2,) #设置消息持久化，将要发送的消息的属性标记为2，表示该消息要持久化
                      )
print("[生产者] send 'Hello World!'")

connection.close()  # 当生产者发送完消息后，可选择关闭连接
